package inutan.gateway.balancer.ignite;

//public class IgniteStarter {
//
//    public static void main(String[] args) {
//        // 1. 基础节点配置
//        IgniteConfiguration cfg = new IgniteConfiguration();
//        cfg.setConsistentId("ignite-node-1"); // 节点唯一标识[7](@ref)
//
//        // 2. 集群发现机制（Kubernetes环境）
//        TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi();
//        TcpDiscoveryKubernetesIpFinder ipFinder = new TcpDiscoveryKubernetesIpFinder();
//        ipFinder.setNamespace("ignite-cluster"); // K8s命名空间
//        discoverySpi.setIpFinder(ipFinder);
//        cfg.setDiscoverySpi(discoverySpi);
//
//        // 3. 持久化存储配置（防数据丢失）
//        DataStorageConfiguration storageCfg = new DataStorageConfiguration();
//        storageCfg.getDefaultDataRegionConfiguration()
//                .setPersistenceEnabled(true) // 启用持久化[3](@ref)[6](@ref)
//                .setMaxSize(2 * 1024 * 1024 * 1024L); // 2GB内存区域
//        storageCfg.setStoragePath("/data/ignite/persistence"); // 持久化目录
//        cfg.setDataStorageConfiguration(storageCfg);
//
//        // 4. 缓存配置（强一致性）
//        CacheConfiguration<String, GameNode> cacheCfg = new CacheConfiguration<>();
//        cacheCfg.setName("playerBindings");
//        cacheCfg.setBackups(2); // 2个备份副本[1](@ref)
//        cacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL); // 事务支持
//        cfg.setCacheConfiguration(cacheCfg);
//
//        // 5. 安全配置（生产必选）
//        cfg.setAuthenticationEnabled(true);
//        cfg.setSecurityCredentialsProvider(
//                new SecurityCredentialsProvider(() ->
//                        new SecurityCredentials("admin", "S3cureP@ss".toCharArray())
//                )
//        );
//
//        // 6. 启动节点
//        try (Ignite ignite = Ignition.start(cfg)) {
//            System.out.println("Ignite节点已启动，ID: " + ignite.cluster().localNode().id());
//        }
//    }
//}
